import axios from 'axios'
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  baseURL: "/api",
  // 超时
  timeout: 300000
})

// request拦截器
service.interceptors.request.use(config => {
  // 是否需要设置 token
  const isToken = (config.headers || {}).isToken === false
  //如果token不为空,设置token到请求头
  if (getToken() && !isToken) {
    config.headers['token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  // get请求映射params参数
  if (config.method === 'get' && config.params) {
    let url = config.url + '?' + tansParams(config.params);
    url = url.slice(0, -1);
    config.params = {};
    config.url = url;
  }
  return config
}, error => {
  Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use(res => {
  const { status } = res.data;
  if (status == 'success') {
    return res.data;
  } else {
    Message.error(res.data.msg);
    return false;
  }
}, error => {
  let { message } = error;
  if (message == 'Network Error') {
    
  } else if (message.includes('timeout')) {
  
  } else if (message.includes('Request failed with status code')) {
    message = message.substr(message.length - 3) /* + '异常'*/
    if (message == '502' || message == '503' || message == '404') {
      
    } else {
      
    }
  } else {
    
  }
  return error
}
)

export default service